package com.bigger.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.Map;

public class JwtUtil {
    public static String createToken(String key, long ttlMillis, Map<String,Object> claims){
        JwtBuilder token= Jwts.builder()
                .signWith(SignatureAlgorithm.HS384,key.getBytes(StandardCharsets.UTF_8))
                .addClaims(claims);
        if (ttlMillis!=0){
            Date exp = new Date(System.currentTimeMillis() + ttlMillis);//过期时间
            token.setExpiration(exp);
        }
        return token.compact();
    }
    public static Claims parseToken(String key,String token){
        Claims claims = Jwts.parser()
                // 设置签名的秘钥
                .setSigningKey(key.getBytes(StandardCharsets.UTF_8))
                // 设置需要解析的jwt
                .parseClaimsJws(token).getBody();
        return claims;
    }
}
